#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
import time 
import pandas as pd
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
import json
from selenium.webdriver.common.action_chains import ActionChains
import os
from copy import deepcopy
import pyautogui
import pymysql
import pandas as pd
from icecream import ic
from collections import defaultdict
import requests
import unicodedata
from xpinyin import Pinyin
import time



d = {
    '市交通局': '宁德市交通运输局', 
    '市民政局': '宁德市民政局', 
    '市生态环境局': '宁德市生态环境局', 
    '市商务局': '宁德市商务局', 
    '市市场监督管理局': '宁德市市场监督管理局', 
    '市财政局': '宁德市财政局', 
    '市应急局': '宁德市应急管理局', 
    '宁德市信息中心': '宁德市信息中心', 
    '市卫健委': '宁德市卫生健康委员会', 
    '市高院': '市高院', 
    '市农业局': '宁德市农业农村局', 
    '市政法委': '宁德市政法委员会', 
    '市税务局': '国家税务总局宁德市税务局', 
    '市发改委': '宁德市发展和改革委员会', 
    '市公安局': '宁德市公安局', 
    '市人社局': '宁德市人力资源和社会保障局', 
    '市水利局': '宁德市水利局', 
    '市司法局': '宁德市司法局', 
    '市编办': '宁德市编办', 
    '市教育局': '宁德市教育局', 
    '市旅发委': '宁德市文化和旅游局', 
    '宁德市生态环境局': '宁德市生态环境局', 
    '市科技局': '宁德市科技局', 
    '市住房公积金管理中心': '宁德市住房公积金管理中心', 
    '市城乡建设局': '宁德市住房和城乡建设局', 
    '市自然资源局': '宁德市自然资源局', 
    '市电力公司': '宁德市电力公司', 
    '宁德市海洋与渔业局': '宁德市海洋与渔业局', 
    '省退役军人事务厅': '宁德市省退役军人事务厅'
    }
options = ['霞浦县自然资源局','霞浦县人民防空办公室','霞浦县交通运输局','福建省安全生产监督管理局','宁德市财政局','宁德市蕉城区发展和改革局',
            '宁德市自然资源局','宁德市编办','宁德市科技局','宁德市生态环境局','宁德市海洋与渔业局','宁德市水利局','宁德市民族与宗教事务局',
            '宁德市民政局','宁德市林业局','宁德市文化和旅游局','宁德市数字宁德建设办公室','宁德市教育局','宁德市政法委员会','宁德市应急管理局',
            '宁德市市场监督管理局','宁德市工业和信息化局','宁德市工业和信息化局','宁德市委组织部','宁德市委文明办','宁德市委宣传部',
            '宁德市国有资产监督管理委员会','宁德市商务局','宁德市司法局','宁德市发展和改革委员会','宁德市卫生健康委员会','宁德市医疗保障局',
            '宁德市农业农村局','宁德市公安局','宁德市保监局','宁德市体育局','宁德市住房和城乡建设局','宁德市人力资源和社会保障局','宁德市交通运输局',
            '国家税务总局宁德市税务局','周宁县发展和改革局','古田县工业和信息化局']


def get_data_from_database():
    # 从数据库
    conn=pymysql.connect(host='10.64.202.214', port=3306, user='root', password='inspur135?!', db='dsp_cascade_ningde', charset='utf8')
    cursor=conn.cursor()
    df = pd.read_excel('全部接口.xlsx')
    for i in df.index:
        print(df.loc[i,'TABLENAME'])
        table = df.loc[i,'TABLENAME']
        # 获取字段名
        sql = 'show columns from {}'.format(table)
        rows = cursor.execute(sql)
        data = cursor.fetchall()
        df.loc[i,'数据库字段'] = str(data)
        sql = 'select * from {} LIMIT 1'.format(table)
        rows = cursor.execute(sql)
        data = cursor.fetchall()
        df.loc[i,'数据库数据示例'] = str(data)
    cursor.close()
    conn.close()
    df.to_excel('全部接口1.xlsx')


def submitable():
    '''是否达到上报条件
    '''
    df = pd.read_excel('全部数据.xlsx', converters={'appkey':str})
    for i in df.index:
        df.loc[i, '是否达到上报条件'] = '是'
        guishubumen = df.loc[i, '归属部门']
        if pd.isnull(guishubumen) or guishubumen=='':
            df.loc[i, '是否达到上报条件'] = '归属部门为空'
            continue
        interface_name = df.loc[i, '接口']
        if pd.isnull(interface_name) or interface_name=='':
            df.loc[i, '是否达到上报条件'] = '接口为空'
            continue
        return_value = df.loc[i, '输出示例']
        if pd.isnull(return_value) or return_value=='':
            df.loc[i, '是否达到上报条件'] = '输出示例为空'
            continue
        parameter_name = df.loc[i, '索引']
        if pd.isnull(parameter_name) or parameter_name=='':
            df.loc[i, '是否达到上报条件'] = '索引为空'
            continue
        parameter_value = df.loc[i, '入参示例']
        if pd.isnull(parameter_value) or parameter_value=='':
            df.loc[i, '是否达到上报条件'] = '入参示例为空'
            continue
        interface_address = df.loc[i, '接口地址']
        if pd.isnull(interface_address) or interface_address=='':
            df.loc[i, '是否达到上报条件'] = '接口地址为空'
            continue
        biaoming = df.loc[i, '表名']
        if pd.isnull(biaoming) or biaoming=='':
            df.loc[i, '是否达到上报条件'] = '表名为空'
            continue
        if df.loc[i, '资源审核是否通过'] != '资源审核已通过':
            df.loc[i, '是否达到上报条件'] = '资源审核未通过'
            continue
        if df.loc[i, '索引'] == 'TTTTTT_TID':
            df.loc[i, '是否达到上报条件'] = '索引为TTTTTT_TID'
            continue
    df.to_excel('quanbushuju.xlsx')


def code_test():
    file_name = '1新设计接口清单接口.xlsx'
    df = pd.read_excel(file_name, converters={'appkey':str})
    for i in df.index:
        try:
            if i!=77:
                continue
            print(i, df.loc[i, '接口'])
            url = "{}?{}={}".format(df.loc[i, '接口地址'], df.loc[i, '索引'], df.loc[i, '入参示例'])
            payload = {}
            headers = {'appkey': str(df.loc[i, 'appkey'])}
            t1 = time.time()
            response = requests.request("GET", url, headers=headers, data=payload, timeout=10)
            t2 = time.time()
            print(response.text)
            x = json.loads(response.text)
            if 'code' in x and x['data'] and df.loc[i, '索引'] in response.text:
                df.loc[i, '代码测试是否通过'] = '测试通过'
                df.loc[i, '代码测试输出'] = json.dumps(x, ensure_ascii=False)
                df.loc[i, '响应时间'] = (t2-t1)
            else:
                df.loc[i, '代码测试是否通过'] = '测试不通过'
        except requests.exceptions.ReadTimeout:
            print('超时')
            df.loc[i, '代码测试是否通过'] = '超时'
            df.to_excel(file_name.replace('.xlsx', '_代码测试结果.xlsx'))
    df.to_excel(file_name.replace('.xlsx', '_代码测试结果.xlsx'))



def ziduan():
    df = pd.read_excel('全部数据.xlsx', converters={'appkey':str})
    # for i in df.index:
    for i in df.index:
        ziduan = df.loc[i, '数据库字段'].split('), (')
        print(ziduan)
        s = list()
        for j in ziduan:
            j = j.strip('()').split(',')
            j = [x.strip("' ") for x in j]
            if '(' in j[1]:
                a = j[0]
                b = j[1][:j[1].find('(')]
                c = j[1][j[1].find('(')+1:j[1].find(')')]
            else:
                a = j[0]
                b = j[1]
                c = ''
            s.append(';'.join([a,b,c]))
        df.loc[i, '字段'] = ','.join(s)
    df.to_excel('quanbushuju.xlsx')


def rucanshili():
    df = pd.read_excel('全部数据.xlsx', converters={'appkey':str})
    # 入参示例为空的
    for i in df.index:
            print(i)
        # if pd.isnull(df.loc[i, '入参示例']):
            if pd.isnull(df.loc[i, '索引']):
                continue
            if pd.isnull(df.loc[i, 'data']):
                continue
            if pd.isnull(df.loc[i, '字段']):
                continue
            data = df.loc[i, 'data'].strip('(,)').split(',')
            data = [x.strip("' ") for x in data]
            ziduan = df.loc[i, '字段'].split(',')
            ziduan = [x.split(';')[0] for x in ziduan]
            # print(data[ziduan.index(df.loc[i, '索引'])])
            if df.loc[i, '索引'] not in ziduan:
                df.loc[i, '索引'] = ziduan[0]
            df.loc[i, '入参示例'] = data[ziduan.index(df.loc[i, '索引'])]
    df.to_excel('quanbushuju.xlsx')

def jiexishuju(s):
    def jiexi(biaozhi, ss):
        if biaozhi=="'":
            return ss[:ss.find("'")]
        elif biaozhi == ',':
            return ss[:ss.find(",")]
    l = list()
    jinru = False
    for i in range(len(s)):
        if s[i]=="'":
            if not jinru:
                l.append(jiexi("'", s[i+1:]))
            jinru = not jinru
        elif (not jinru) and (s[i] not in [',', ' ']):
            l.append(jiexi(',', s[i:]))
            jinru = True
    return l



def shenfenzhonghao(id):
    if not id.isdigit():
        return False
    if len(id) == 18:   #校验省份证长度是否是18位
        num17 = id[0:17]
        last_num = id[-1]  #截取前17位和最后一位
        moduls = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
        sum = 0
        for i in range(0,len(num17)):   #将身份证前17位数字和系数相乘的结果相加 
            result = int(num17[i])*moduls[i]
            sum = sum + result
        yushu = sum % 11
        yushu1 = [0,1,2,3,4,5,6,7,8,9,10]
        yushu2 = [1,0,'X',9,8,7,6,5,4,3,2]
        dict = {}
        for i in range(0,len(yushu1)):
            dict[yushu1[i]] = yushu2[i]
        if last_num == str(dict[yushu]):
            return True
        else:
            return False
    else:
        return False



def get_index(a):
    info={
        'ZJH':'身份证号',
        'BDCQZH':'不动产权证号',
        'GSZCH':'工商注册号',
        'USER_NAME':'用户名',
        'bookID':'图书ID',
        'readerNo':'读者号',
        'BDCDYH':'不动产抵押号',
        'pointcode':'站点编码',
        'ZZJGDM':'组织机构代码',
        'POINTNAME':'采集点名称',
        'BH':'证照编号',
        'ZZBH':'证照编号',
        'JGDM':'组织机构代码',
        'XKZBH':'许可证编号',
        'PZWH':'批准文号',
        'ZH':'证号',
        'aac001':'人员编号',
        'ProductID':'产品ID',
        'XZQHDM':'行政区划代码',
        'nsrsbh':'纳税人识别号',
        'handle_user_name':'办理人',
        'application_number':'申报号',
        'bzc_jyzh':'产品检疫证号',
        'county':'区县名',
        'CALLNO':'通讯号',
        'HouseCenterCode':'房屋中心编号',
        'YWZH':'YWZH',
        'identity_no':'身份证号',
        'area_name':'测位点名称',
        'IDCard':'身份证号',
        'TYSHXYDM':'统一社会信用代码',
        'IDENTITY_CARD_NUMBER':'从业人员身份证件号码',
        'URPHONE':'通讯号码',
        'line_code':'线路编号, 城市统一编码',
        'CPH':'车牌号',
        'tyshxydm':'统一社会信用代码',
        'JMSFZH':'居民身份证号',
        'XM':'姓名',
        'QYZZJGDM':'企业组织机构代码',
        'SOURCE_UINT':'来源单位名称',
        'unit_name':'单位名称',
        'monitor_year':'年度',
        'CenterName':'机构名称',
        'shop_name':'门前三包责任主体',
        'patrol_id':'监督员标识',
        'project_name':'项目名称',
        'user_id':'会员ID',
        'DRAWER':'领用人',
        'LicenceID':'证书编号',
        'YEAR':'年度',
        'VEHICLE_PLATE_DECIMAL':'车牌号',
        'OWNER_NAME':'单位名称',
        'regionName':'地点名称',
        'PROJ_NAME':'项目名称',
        'proName':'项目名称',
        'title':'通知标题',
        'SIRC_ORGNAME':'数据来源部门',
        'FINMGR':'财务负责人',
        'user_name':'用户名',
        'holder':'持证者' ,
        'AAC001':'人员ID',
        'Host':'户主',
        'stnm':'站点',
        'DWZDM':'DWZDM',
        'QH_NAME':'行政区划名称',
        'AAB004':'企业编号',
        'deptname':'单位名称',
        'Location':'地点名称',
        'name':'name',
        'STNM':'测站地址',
        'STCD':'STCD',
        'Documenter':'Documenter',
        'year':'年度',
        'project_guid':'项目编号',
        'ORGID':'机构编号',
        'NAME':'NAME',
        'DEPTCODE':'DEPTCODE',
        'userName':'userName',
        'student_name':'student_name',
        'category_name':'category_name',
        'readercardNo':'readercardNo',
        'service_code':'service_code',
        'XZXDRDM':'行政相对人代码',
        'area_code':'area_code',
        'c01_yycwgjzbsqsbh':'渔业船网工具指标申请书编号',
        'c33_cbsyrmc':'船舶所有人名称',
        'creditcode':'统一社会信用代码',
        'entername':'企业名称',
        'output_id':'水电站机组id',
        'aaz040':'单位参保信息编号',
        'aab004':'单位名称',
        'grzh':'个人账号',
        'zxbh':'中心编号',
        'dq':'地区',
        'disability_level':'残疾等级',
        'dir_name':'事项目录名称',
        'situation_name':'所属办理情形',
        'ship_name':'船名',
        'cata_name':'基本目录名称',
        'companyname':'企业名称',
        'FNumber':'文件编号',
        'ProjectName':'项目名称',
        'SQRMC':'SQRMC',
        'ZRZBSM':'ZRZBSM',
        'ITEM_NAME':'ITEM_NAME',
        'zrz':'zrz',
        'enterprise_name':'enterprise_name',
        'settling_platform':'settling_platform',
        'CCB041':'招聘会名称',
        'zl':'zl',
        'file_name':'file_name',
        'product_id':'产品id',
        'province_code':'产品编码',
        'config_id':'config_id',
        'trace_batch_data_id':'trace_batch_data_id',
        'trace_project_id':'trace_project_id',
        'Name':'Name',
        'event_src_name':'事件来源',
        'opername':'持卡人姓名',
        'cardno':'卡号',
        'hm':'户名',
        'vou_id':'vou_id',
        'cust_name':'用户姓名',
        'full_name':'厂商全称',
        'unid':'办件主键',
        'ah':'案号',
        'cf_xdr_shxym':'统一社会信用代码',
        'BUYER_NAME':'进货主体名称',
        'bdcdyh':'350305000000GH00091W00000000',
        'DEPT_NAME':'办理机关名称',
        'purchase_project_code':'采购项目编号',
        'produce_id':'企业编码',
        'pscode':'污染源编码',
        'META_ADDR_ID':'地址编号',
        'fishswsn':'站点',
        'DJXH':'登记序号',
        'nsdbsuuid':'纳税担保书UUID',
        'REG_ENT_NAME':'登记主体名称',
        'WPC_SN':'取水许可证编号',
        'plu_code':'污染物代码',
        'INDUSTRY':'国标行业',
        'f_sname':'名称',
        'stcd':'测站编码',
        'MP_CD':'监测点代码',
        'f_sshop':'农资企业的工商注册号',
        'COMPANYMAINNAME':'企业名称',
        'CMVECID':'车辆id',
        'GSBH':'公示编号',
        'TD_ZL':'宗地位置',
        'XMBSM':'项目标识码',
        'QCCORPNAME':'质量检测机构名称',
        'ECONCORPNAME':'勘察单位名称',
        'RECORDNUM':'合同备案编号',
        'CSMC':'城市名称',
        'station_name':'站点名称',
        'zdbh':'点位ID',
        'EventName':'事件名称',
        'GridName':'网格名称',
        'GRID_NAME':'网格名称',
        'TASK_NAME':'任务标题',
        'ORGAN_NAME':'直属上级名称',
        'AREA':'所属地区',
    }
    df = pd.read_excel('全部数据.xlsx', converters={'appkey':str})
    for i in df.index:
        if df.loc[i, '索引'] != '未定':
            continue
        print(i)
        
        host = df.loc[i, '数据库'].strip().split('/')[0]
        db = df.loc[i, '数据库'].strip().split('/')[1]
        table = df.loc[i, '表名'].strip()
        # print(host, db, table)
        if host == '10.64.202.214':
            conn=pymysql.connect(host=host, port=3306, user='root', password='inspur135?!', db=db, charset='utf8')
        else:
            conn=pymysql.connect(host=host, port=3306, user='root', password='123456a?', db=db, charset='utf8')
        cursor=conn.cursor()
        sql = 'select * from {} LIMIT 1'.format(table)
        rows = cursor.execute(sql)
        data = cursor.fetchall()
        sql = 'show full columns from {}'.format(table)
        rows = cursor.execute(sql)
        ziduan = cursor.fetchall()
        cursor.close()
        conn.close()
        s = ''
        df.loc[i, '索引'] = '未定'
        for j in range(len(data[0])):
            s += str(ziduan[j][0])+':'+str(data[0][j])+'('+ziduan[j][8]+')'+'\n'
            if ziduan[j][0] in info:
                df.loc[i, '索引'] = ziduan[j][0]
                df.loc[i, '索引说明'] = info[ziduan[j][0]]
        df.loc[i, '找索引用'] = s
        # if a :print(df.loc[i, '接口']);print(s);print(df.loc[i, '数据库']);print(df.loc[i, '表名']);quit()
    df.to_excel('全部数据.xlsx')



def get_rucanshili():
    file_name = '7设计新接口.xlsx'
    df = pd.read_excel(file_name, converters={'appkey':str})
    for i in df.index:
        if not pd.isnull(df.loc[i, '入参示例']):
            continue
        print(i)
        print(df.loc[i, '数据库']);print(df.loc[i, '表名'], df.loc[i, '索引'])
        host = df.loc[i, '数据库'].strip().split('/')[0]
        db = df.loc[i, '数据库'].strip().split('/')[1]
        table = df.loc[i, '表名'].strip()
        if host == '10.64.202.214':
            conn=pymysql.connect(host=host, port=3306, user='root', password='inspur135?!', db=db, charset='utf8')
        else:
            conn=pymysql.connect(host=host, port=3306, user='root', password='123456a?', db=db, charset='utf8')
        cursor=conn.cursor()
        sql = 'select {} from {} limit 50'.format(df.loc[i, '索引'], table)
        rows = cursor.execute(sql)
        data = cursor.fetchall()
        cursor.close()
        conn.close()
        print(data)
        for j in data:
            if not j[0]:
                continue
            if '测试' in str(j[0]):
                continue
            if '户主不明' in str(j[0]):
                continue
            if ' ' == str(j[0]):
                continue
            df.loc[i, '入参示例'] = j[0]
            break
        # quit()
    df.to_excel(file_name.replace('.xlsx','_获取入参示例.xlsx'))

def is_chinese(char):
    for j in char:
        # print(j)
        if 'CJK' in unicodedata.name(j):
            return True
    return False

def interface_en():
    file_name = '7设计新接口.xlsx'
    df = pd.read_excel(file_name, converters={'appkey':str})
    for i in df.index:
        table_name = df.loc[i, '接口']
        print(i, table_name)
        interface_name = list()
        for c in table_name:
            if c in['_', '（', '）', '-', '.', '，', '、','%', '/', ' ', '——','(',')','\n']:
                continue
            elif 'A'<=c<='Z':
                interface_name.append(c.lower())
            elif is_chinese(c):
                interface_name.append(Pinyin().get_pinyin(c)[0])
            else:
                interface_name.append(c)
        df.loc[i, '接口地址英文后缀'] = ''.join(interface_name)
    df.to_excel(file_name.replace('.xlsx', '_接口英文后缀.xlsx'))

def ceshijieguofuheyaoqiu(s,c):
    try:
        x = json.loads(s)
    except:
        return '测试不通过'
    if 'code' in x and 'data' in x and x['code'] == 200 and x['data'] and c in s:
        return '测试通过'
    else:
        return '测试不通过'
    

def shujuliang():
    file_name = '7设计新接口.xlsx'
    df = pd.read_excel(file_name, converters={'appkey':str})
    for i in df.index:
        print(i)
        print(df.loc[i, '数据库']);print(df.loc[i, '表名'], df.loc[i, '索引'])
        host = df.loc[i, '数据库'].strip().split('/')[0]
        db = df.loc[i, '数据库'].strip().split('/')[1]
        table = df.loc[i, '表名'].strip()
        if host == '10.64.202.214':
            conn=pymysql.connect(host=host, port=3306, user='root', password='inspur135?!', db=db, charset='utf8')
        else:
            conn=pymysql.connect(host=host, port=3306, user='root', password='123456a?', db=db, charset='utf8')
        cursor=conn.cursor()
        sql = 'select count(*) from {}'.format(table)
        rows = cursor.execute(sql)
        data = cursor.fetchall()
        cursor.close()
        conn.close()
        df.loc[i, '数据量'] = data[0][0]
    df.to_excel(file_name.replace('.xlsx', '_数据量.xlsx'))

def shagnbaojigouxuanze():
    shizhibumen1 = [
        '宁德市发展和改革委员会','宁德市教育局','宁德市科学技术局','宁德市工业和信息化局','宁德市民族和宗教事务局','宁德市公安局','宁德市民政局','宁德市司法局','宁德市财政局',
    '宁德市人力资源和社会保障局',
    '宁德市自然资源局',
    '宁德市生态环境局',
    '宁德市住房和城乡建设局',
    '宁德市交通运输局',
    '宁德市水利局',
    '宁德市农业农村局',
    '宁德市商务局',
    '宁德市文化和旅游局',
    '宁德市卫生健康委员会',
    '宁德市退役军人事务局',
    '宁德市应急管理局',
    '宁德市审计局',
    '宁德市国有资产监督管理委员会',
    '宁德市林业局',
    '宁德市海洋与渔业局',
    '宁德市市场监督管理局',
    '宁德市体育局',
    '宁德市统计局',
    '宁德市信访局',
    '宁德市城市管理局',
    '宁德市医疗保障局',
    ]
    shizhibumen2 = ['国家税务总局宁德市税务局','宁德市数字宁德建设办公室','宁德市政法委员会','宁德市保监局','宁德市行政服务中心管理委员会','宁德市委宣传部','宁德市经济和信息化委员会','宁德市检验检疫局',
                    '宁德市气象局','宁德市住房公积金管理中心','宁德市电力公司','宁德市省退役军人事务厅','宁德市委组织部','宁德市消防救援支队','宁德市委文明办','宁德市国有融资再担保有限公司','宁德市人民防空办公室',
                    '宁德市通信局','宁德市粮食局','宁德市测绘地理信息局','宁德市广电局','宁德市委机构编制委员会办公室']
    old2newjigou = {
        '宁德市财政局绩效科':'宁德市财政局',
        '宁德市科技局':'宁德市科学技术局',
        '市检验检疫局':'宁德市检验检疫局',
        '市经信委':'宁德市经济和信息化委员会',
        '市气象局':'宁德市气象局',
        '市通信局':'宁德市通信局',
        '市测绘地理信息局':'宁德市测绘地理信息局',
        '市广电局':'宁德市广电局',
        '宁德市编办':'宁德市委机构编制委员会',
        '市粮食局':'宁德市粮食局',
        '宁德市信息中心':'宁德市数字宁德建设办公室',
        '市人防办':'宁德市人民防空办公室',
    }
    shizhibumen = shizhibumen1+shizhibumen2
    w = set()
    df = pd.read_excel('4代码测试通过294.xlsx', converters={'appkey':str,'入参示例':str})
    for i in df.index:
        if df.loc[i, '上报机构新'] not in shizhibumen:
            w.add(df.loc[i, '上报机构新'])
    print(w)
    # df.to_excel('wwwwwwwwww.xlsx')

def get_chucanziduanmiaoshu():
    file_name = '1新设计接口清单接口.xlsx'
    df = pd.read_excel(file_name, converters={'appkey':str})
    for i in df.index:
        # if df.loc[i, '接口是否上报'] != '数据内容不匹配':
        #     continue
        if i!=77:
            continue
        print(i)
        host = df.loc[i, '数据库'].strip().split('/')[0]
        db = df.loc[i, '数据库'].strip().split('/')[1]
        table = df.loc[i, '表名'].strip()
        if host == '10.64.202.214':
            conn=pymysql.connect(host=host, port=3306, user='root', password='inspur135?!', db=db, charset='utf8')
        else:
            conn=pymysql.connect(host=host, port=3306, user='root', password='123456a?', db=db, charset='utf8')
        cursor=conn.cursor()
        sql = 'show full columns from {}'.format(table)
        rows = cursor.execute(sql)
        ziduan = cursor.fetchall()
        cursor.close()
        conn.close()
        d = dict()
        s = ''
        quankong = 'yes'
        for j in ziduan:
            d[j[0]] = j[8]
            if j[8]:
                quankong = 'no'
        df.loc[i, '全空'] = quankong
        df.loc[i, '出参字段描述'] = json.dumps(d, ensure_ascii=False)
        print(json.dumps(d, ensure_ascii=False))
    df.to_excel(file_name.replace('.xlsx', '_获取出参字段描述.xlsx'))

def huansuoyin():
    suoyin  = list()
    ['救助业务编号', '发放金额', '离退休证号', '单位编号', '单位id', '统一信用码', '注册单位名称', '单位名称', '船名', '个人姓名', '统一社会信用代码', '船长', '机构名称', '查封文号', '企业名称', '编号名', '潮汐周 期', '预报时间', '纳税担保人名称', '新生儿姓名', '参保组织编号', '身份证号', '污染源名称', '点位ID', '业务号', '适用产业政策条目', '公示单位', '项目名称', '姓名', '项目编号', '站点名称', '测站名称', '站点ID', '所属大气功能区名称', '用户姓名', '身份证号码', '行政相对人名称', '投诉项目名称', '领用单位', '法人代表', 'ID', '案号', '姓名/名称', '案件名称', '单号', '强制执行事项名称', '联系人', '被奖励人姓名', '居民身份 证号', '纳税人名称', '企业ID', '采矿许可证号', '资质单位名称', '矿山名称', '批次名称', '企业中文名称', '审批流程编码', '地方数据主键', '企业名称/界定条件\n（连续三年全国综合信用评价等级为AA级，或者连续两年全国等级为AA、且每年信用评价份数量不低于2个）', '企业组织机构代码', '部门ID', '抵押权人证件号', '企业或法人组织名称', '企业ID, 即企业统一编号', '养殖用户身份证号码', '当事人', '通讯录Id', '市场主体名称', '旅行社名称', '组织机构代码', '单位信息', '商标', '机构全称', '被处罚机构名称', '生产者名称', '通用名称', '药品名称', '教练员驾驶证号', '社会组织名称', '企业机构名称', '行政相对人名称（必填,填写裁决被告法人及非法人组织、个体工商户名称、自然人姓名）', '行政相对人名称（必填,填写法人及非法人组织、个体工商户名称、自然人姓名）', '行政相对人名称(必填,法人及非法人组织、个体工商户名称或自然人姓名)', '行政相对人名称(必填,填写法人及 非法人组织、个体工商户名称、自然人姓名)', '权利人名称', '乡', '自然人姓名', '基本目录编码', '电子证照编码', '残疾性质', '承办银行', '渔港名称', '项目GUID', '项目id', '产品uuid', '产品ID', '经营单位', '申请人姓名']
    file_name = '7设计新接口.xlsx'
    df = pd.read_excel(file_name, converters={'appkey':str})
    for i in df.index:
        print(i,'/', df.shape[0], df.loc[i, '接口'])
        keys =list(json.loads(df.loc[i,'出参字段描述']).keys())
        if df.loc[i, '索引'] not in keys:
            print('索引找不到')
            quit()
        del keys[keys.index(df.loc[i, '索引'])]
        values = [json.loads(df.loc[i,'出参字段描述'])[j] for j in keys]
        for j in range(len(keys)):
            if values[j] in suoyin:
                x = j
                break
        else:
            for j in range(len(keys)):
                print(j, values[j])
            x = int(input('选择索引：'))
            suoyin.append(values[x])
        print(suoyin)
        df.loc[i, '索引'] = keys[x]
        df.loc[i, '索引说明'] = values[x]
        jiekouming = df.loc[i, '接口']
        if jiekouming.endswith('新'):
            jiekouming = jiekouming[:-1]
        if jiekouming.endswith('信息查询接口'):
            jiekouming = jiekouming[:6]
        jiekouming = jiekouming+'根据'+values[x]+'信息查询接口'
        df.loc[i, '接口名'] = jiekouming
        df.to_excel(file_name.replace('.xlsx', '_换索引.xlsx'))


if __name__ == '__main__':
    get_chucanziduanmiaoshu()
    # code_test() 
    # shagnbaojigouxuanze()
    # shujuliang()
    # huansuoyin()
    # get_rucanshili()
    # interface_en()